﻿using System;
using System.Collections.Generic;
using System.Text;
using WeChatSDK.WeChatDto.CustomSerivce;
using WeChatSDK.WeChatDto.CustomSerivce.Message;

namespace BCService.WeChatComponent.WeChatKeyAccountService
{
    /// <summary>
    /// 微信客服服务接口
    /// </summary>
    public interface IWeChatKeyAccountService
    {
        /// <summary>
        /// 添加微信客服账号
        /// </summary>
        /// <param name="weChatKeyAccountDto">微信客服账号模型</param>
        /// <returns></returns>
        string AddKeyAccount(WeChatKeyAccountDto weChatKeyAccountDto);

        /// <summary>
        /// 修改微信客服账号
        /// </summary>
        /// <param name="weChatKeyAccountDto">微信客服账号模型</param>
        /// <returns></returns>
        string UpdateKeyAccount(WeChatKeyAccountDto weChatKeyAccountDto);

        /// <summary>
        /// 删除微信客服账号
        /// </summary>
        /// <param name="weChatKeyAccountDto">微信客服账号模型</param>
        /// <returns></returns>
        string DeleteKeyAccount(WeChatKeyAccountDto weChatKeyAccountDto);
        /// <summary>
        /// 获取所有微信客服账号
        /// </summary>
        /// <returns></returns>
        string Get();
        /// <summary>
        /// 发送绑定邀请
        /// </summary>
        /// <param name="weChatKeyAccountDto">微信客服账号模型</param>
        /// <returns></returns>
        string SendBindingInvite(WeChatKeyAccountDto weChatKeyAccountDto);
        /// <summary>
        /// 发送客服消息
        /// </summary>
        /// <typeparam name="T">WeChatKeyAccountMessageDto派生对象</typeparam>
        /// <param name="weChatKeyAccountMessageDto">微信客服消息对象</param>
        /// <returns></returns>
        string SendMessage<T>(T weChatKeyAccountMessageDto) where T : WeChatKeyAccountMessageDto;

        /// <summary>
        /// 上传微信客服头像
        /// </summary>
        /// <param name="account">微信客服账号</param>
        /// <param name="avatarPath">微信客服头像路径</param>
        /// <exception cref="ArgumentException"></exception>
        /// <returns></returns>
        void UploadAvatar(string account,string avatarPath);
    }
}
